The networked computing environment (e.g., cloud computing environment) is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further enhanced by one or more additional abstraction layers (e.g., a cloud layer), thus making disparate devices appear to an end-consumer as a single pool of seamless resources. These resources may include such things as physical or logical computing engines, servers and devices, device memory, and storage devices, among others.
The new generation of cloud and enterprise applications often requires a level of storage capacity and performance that is typically observed only in scientific and high performance computing workloads. In order to meet the demand of these new applications, there has been a gradual shift from a single client-server distributed file system architecture to a parallel file system architecture. A parallel file system architecture provides increased bandwidth via multiple parallel input/output (I/O) streams. In a storage cloud service, the underlying storage, computation, and network resources are managed by the underlying file systems and are shared across many different workloads that may belong to different tenants/customers. Each of these workloads may have different resiliencies, performance, and availability requirements.
Cluster file systems control performance via storage pools, which are logical groupings of network storage resources (e.g., disks). By changing the number and type of disks, it is possible to control the performance of the workload placed in each storage pool. However, the configuration and composition of the storage pools are usually statically defined and manually changed by system administrators.